

package dam_ed04_actividad;

/**
 * CCuenta.java
 * Clase principal do proxecto para unha simple operativa de conta corriente
 * @version 1.1
 * @author Ruben
 * @since 20/02/2014
 */
public class CCuenta {
    /**
     * Garda o nome
     */

    private String nombre;
    /**
     * Garda o número de conta
     */    
    private String cuenta;
    
    /**
     * Garda o saldo
     */    
    private double saldo;
    
    /**
     * Garda o tipo de interés
     */    
    private double tipoInterés;


    public CCuenta()
    {
    }
    /**
     * Constructor para a clase
     * @param nom
     * @param cue
     * @param sal
     * @param tipo
     */
    public CCuenta(String nom, String cue, double sal, double tipo)
    {
        nombre =nom;
        cuenta=cue;
        saldo=sal;
    }
    /**
     * Método para asignar o nombre
     * @param nom
     */
    public void asignarNombre(String nom)
    {
        setNombre(nom);
    }

    public String obtenerNombre()
    {
        return getNombre();
    }

     public void asignarCuenta(String con)
    {
        setCuenta(con);
    }
     
     public String obtenerCuenta()
    {
        return getCuenta();
    }

      public void asignarSaldo(double sal)
    {
        setSaldo(sal);
    }
     
     public double obtenerSaldo()
    {
        return getSaldo();
    }
     
     public void asignarTipoInterés(double inter)
    {
        setTipoInterés(inter);
    }
     
     public double obtenerInterés()
    {
        return getTipoInterés();
    }     

    public String getNombre() {
        return nombre;
    }


    public void setNombre(String nombre) {
        this.nombre = nombre;
    }
    
    public String getCuenta() {
        return cuenta;
    }


    public void setCuenta(String cuenta) {
        this.cuenta = cuenta;
    }

    public double getSaldo() {
        return saldo;
    }


    public void setSaldo(double saldo) {
        this.saldo = saldo;
    }


    public double getTipoInterés() {
        return tipoInterés;
    }


    public void setTipoInterés(double tipoInterés) {
        this.tipoInterés = tipoInterés;
    }

    
    
    public double estado()
    {
        return saldo;
    }

    /**
     * Ingresa cartos a non ser que sexa unha cantidade negativa
     * @param cantidad 
     * @exception Exception
     */
    public void ingresar(double cantidad) throws Exception
    {
        if (cantidad<0)
            throw new Exception("No se puede ingresar una cantidad negativa");
        saldo = saldo + cantidad;
    }

    public void retirar(double cantidad) throws Exception
    {
        if (cantidad <= 0)
            throw new Exception ("No se puede retirar una cantidad negativa");
        if (estado()< cantidad)
            throw new Exception ("No se hay suficiente saldo");
        saldo = saldo - cantidad;
    }


   
    
    public void operativa_cuenta(float cantidad) throws Exception{

            try {
                this.retirar(cantidad);
            } catch (Exception e) {
                System.out.print("Fallo al retirar");
            }
            try {
                System.out.println("Ingreso en cuenta");
                this.ingresar(cantidad);
            } catch (Exception e) {
                System.out.print("Fallo al ingresar");
            }
    }    
}
